import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router'

// 定义路由配置
const routes: RouteRecordRaw[] = [
  {
    path: '/',
    name: 'home',
    component: () => import('@/views/Home.vue'),
    meta: {
      title: '首页 - AI代码生成器'
    }
  },
  {
    path: '/features',
    name: 'features',
    component: () => import('@/views/Features.vue'),
    meta: {
      title: '功能介绍 - AI代码生成器'
    }
  },
  {
    path: '/examples',
    name: 'examples',
    component: () => import('@/views/Examples.vue'),
    meta: {
      title: '使用示例 - AI代码生成器'
    }
  },
  {
    path: '/about',
    name: 'about',
    component: () => import('@/views/About.vue'),
    meta: {
      title: '关于我们 - AI代码生成器'
    }
  },
  // 捕获所有未匹配的路由，重定向到首页
  {
    path: '/:pathMatch(.*)*',
    redirect: '/'
  }
]

// 创建路由实例
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes,
  // 滚动行为配置
  scrollBehavior(to, from, savedPosition) {
    if (savedPosition) {
      // 如果有保存的位置，则恢复到该位置
      return savedPosition
    } else {
      // 否则滚动到顶部
      return { top: 0 }
    }
  }
})

// 全局前置守卫 - 设置页面标题
router.beforeEach((to, from, next) => {
  // 设置页面标题
  if (to.meta.title) {
    document.title = to.meta.title as string
  }
  next()
})

export default router
